/*
                    Label Class Definition
*/

#ifndef LABEL_H
#define LABEL_H

#include <stdio.h>
#include "SDL/SDL.h"
#include <string>
#include "SDL/SDL_ttf.h"

#include "../Structs.h"
#include "../Functions.h"

#include "Widget.h"

using namespace std;

class Label : public Widget
{
      public:
             Label();
             ~Label();

             int Initialise(Point NewPosition, string strFilepath, int iNewSize, string strNewText, SDL_Color NewColor, bool bNewOutlined = false);

             void setSize(int iNewSize);
             int getSize();

             void setPosition(Point NewPosition);
             Point getPosition();

             void setText(string strNewText);
             string getText();

             int getWidth();
             int getHeight();

             void setForeColour(int nr, int ng, int nb);

             int BlitToSurface(SDL_Surface *screen);

             int BlitToFrame(SDL_Surface *surface, Point FramePosition);

      protected:
              TTF_Font *TTFfont;
              SDL_Surface *Image;

              SDL_Color ForeColour;

              string strText;

              Point Position;

              bool bOutlined;

              int iSize;

              int UpdateText();
};

#endif
